package org.lq.ssm.dto.mapper;

import org.lq.ssm.dto.MenuDTO;
import org.lq.ssm.po.MenuPO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.LinkedList;
import java.util.List;

//用spring模型，其所在target中实现该接口的类上会带有@Component注释，
// 在java配置类中加上@ComponentScan扫描此接口所在包即可在类中使用注释注入
@Mapper(componentModel = "spring")
public interface MenuDTOMapper {
    //MenuDTOMapper INSTANCE = Mappers.getMapper(MenuDTOMapper.class);
    MenuDTO menuPOToMenuDTO(MenuPO menuPO);

    //default默认实现方法，即可以在此接口中直接实现方法
    default List<MenuDTO> menuPOSToMenuDTOS(List<MenuPO> menuPOS){
        List<MenuDTO> menuDTOS = new LinkedList<>();
        for (MenuPO menuPO : menuPOS){
            MenuDTO menuDTO = menuPOToMenuDTO(menuPO);
            menuDTOS.add(menuDTO);
        }
        return menuDTOS;
    }

//     MenuDTO menuPOTOMenuDTOAndChildren(MenuPO menuPO,List<MenuDTO> children){
//        MenuDTO menuDTO = menuPOToMenuDTO(menuPO);
//        menuDTO.setChildren(children);
//        return menuDTO;
//    }
}
